#include <ros/ros.h>
#include <std_msgs/Int32.h>

// ģ�����������
int left_encoder_ticks = 0;
int right_encoder_ticks = 0;

void publishEncoderData(ros::Publisher& left_pub, ros::Publisher& right_pub) {
    // ���ӱ�����������
    left_encoder_ticks += 0;  // ÿ������10������
    right_encoder_ticks += 0; // ÿ������10������

    // ������Ϣ
    std_msgs::Int32 left_msg;
    left_msg.data = left_encoder_ticks;

    std_msgs::Int32 right_msg;
    right_msg.data = right_encoder_ticks;

    // ������Ϣ
    left_pub.publish(left_msg);
    right_pub.publish(right_msg);

}

int main(int argc, char** argv) {
    // ��ʼ��ROS�ڵ�
    ros::init(argc, argv, "encoder_simulator_node");
    ros::NodeHandle nh;

    // ����Publisher
    ros::Publisher left_encoder_pub = nh.advertise<std_msgs::Int32>("left_encoder", 10);
    ros::Publisher right_encoder_pub = nh.advertise<std_msgs::Int32>("right_encoder", 10);

    // ���÷���Ƶ��
    ros::Rate rate(20);  // 50 Hz

    while (ros::ok()) {
    
        // ��������������
        publishEncoderData(left_encoder_pub, right_encoder_pub);

        // �����Ա��ַ���Ƶ��
        rate.sleep();
    
    }

    return 0;
}
